home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / dns / flags.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  2KB  |  68 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. QR = 32768
  5. AA = 1024
  6. TC = 512
  7. RD = 256
  8. RA = 128
  9. AD = 32
  10. CD = 16
  11. DO = 32768
  12. _by_text = {
  13.     'QR': QR,
  14.     'AA': AA,
  15.     'TC': TC,
  16.     'RD': RD,
  17.     'RA': RA,
  18.     'AD': AD,
  19.     'CD': CD }
  20. _edns_by_text = {
  21.     'DO': DO }
  22. _by_value = []([ (y, x) for x, y in _by_text.iteritems() ])
  23. _edns_by_value = []([ (y, x) for x, y in _edns_by_text.iteritems() ])
  24.  
  25. def _order_flags(table):
  26.     order = list(table.iteritems())
  27.     order.sort()
  28.     order.reverse()
  29.     return order
  30.  
  31. _flags_order = _order_flags(_by_value)
  32. _edns_flags_order = _order_flags(_edns_by_value)
  33.  
  34. def _from_text(text, table):
  35.     flags = 0
  36.     tokens = text.split()
  37.     for t in tokens:
  38.         flags = flags | table[t.upper()]
  39.     
  40.     return flags
  41.  
  42.  
  43. def _to_text(flags, table, order):
  44.     text_flags = []
  45.     for k, v in order:
  46.         if flags & k != 0:
  47.             text_flags.append(v)
  48.             continue
  49.     
  50.     return ' '.join(text_flags)
  51.  
  52.  
  53. def from_text(text):
  54.     return _from_text(text, _by_text)
  55.  
  56.  
  57. def to_text(flags):
  58.     return _to_text(flags, _by_value, _flags_order)
  59.  
  60.  
  61. def edns_from_text(text):
  62.     return _from_text(text, _edns_by_text)
  63.  
  64.  
  65. def edns_to_text(flags):
  66.     return _to_text(flags, _edns_by_value, _edns_flags_order)
  67.  
  68.